package cn.aitstone.system.service;

import cn.aitstone.basic.utils.PageList;
import cn.aitstone.system.domain.DictionaryType;
import cn.aitstone.system.query.DictionaryTypeQuery;

import java.util.List;
/**
 * @Description: 数据字典类型的service实现类
 * @Author: Sheldon
 * @Version: 1.0
 * @Date:  2022/7/1 21:28
 */
public interface IDictionaryTypeService {
    /**
     * @Title: loadAll
     * @Description: 查询所有
     * @Author: Sheldon
     * @Version: 1.0
     * @Date:  2022/6/21 19:37
     * @Parameters: []
     * @Return java.util.List<cn.aitstone.org.domain.DictionaryType>
     */
    List<DictionaryType> loadAll();


    /**
     * @Title: loadById
     * @Description:  根据Id查询
     * @Author: Sheldon
     * @Version: 1.0
     * @Date:  2022/6/21 19:37
     * @Parameters: [id]
     * @Return cn.aitstone.org.domain.DictionaryType
     */
    DictionaryType loadById(Long id);

    /**
     * @Title: remove
     * @Description: 根据Id删除
     * @Author: Sheldon
     * @Version: 1.0
     * @Date:  2022/6/21 19:37
     * @Parameters: [id]
     * @Return void
     */
    void remove(Long id);

    /**
     * @Title: save
     * @Description: 新增
     * @Author: Sheldon
     * @Version: 1.0
     * @Date:  2022/6/21 19:38
     * @Parameters: [dictionaryType]
     * @Return void
     */
    void save(DictionaryType dictionaryType);

    /**
     * @Title: update
     * @Description: 根据Id修改
     * @Author: Sheldon
     * @Version: 1.0
     * @Date:  2022/6/21 19:38
     * @Parameters: [dictionaryType]
     * @Return void
     */
    void update(DictionaryType dictionaryType);

    /**
     * @Title: queryData
     * @Description: 分页+高级查询
     * @Author: Sheldon
     * @Version: 1.0
     * @Date:  2022/6/21 19:38
     * @Parameters: [dictionaryTypeQuery]
     * @Return cn.aitstone.basic.utils.PageList<cn.aitstone.org.domain.DictionaryType>
     */
    PageList<DictionaryType> queryData(DictionaryTypeQuery dictionaryTypeQuery);

    /**
    * @Title: batchdel
    * @Description: 根据id数组批量删除
    * @Author: Sheldon
    * @Version: 1.0
    * @Date:  2022/6/30 23:44
    * @Parameters: [ids]
    * @Return void
    */
    void batchdel(Long[] ids);
}
